package chapter_08_bridge.classic;

/**
 * @author yaochenglong
 * @date 2017/10/17
 * 抽象化角色
 * 该类定义了某个功能或方法；桥梁模式的特点就是实现类不用继承抽象化角色，抽象化角色中包含了一个实现类的引用。
 */
public abstract class Abstraction {

    //抽象化角色关联实现化角色
    private Implementor implementor;

    //实例化抽象角色的时候，必须让子类指定实现类
    public Abstraction(Implementor implementor) {
        this.implementor = implementor;
    }

    //抽象化类自身的行为和属性；具体抽象化角色可以覆写该方法来修正父类的行为
    public void request(){

        //具体操作由实现化类来执行
        implementor.doSomething();
    }

    //获取实现化角色
    public Implementor getImplementor(){
        return implementor;
    }

}
